Перейти к основному содержимому

5.05. Знаки препинания

Разработчику Архитектору

Знаки препинания

Два важных вопроса, которые мучают начинающих программистов:

  1. Когда использовать кавычки двойные ("), одинарные ('), а когда апострофы ()?
  2. Когда использовать точки (.), запятые (,) и точку с запятой (;)?

Строки — в двойных кавычках:

string name = "John";

Символы (char) — в одинарных:

char letter = 'A';

Многострочные строки (verbatim strings) начинаются с @"":

string path = @"C:\Program Files\MyApp";

Апострофы () — не поддерживаются в синтаксисе C#. Точка (.) : аналогично Java — для доступа к свойствам и методам:

Console.WriteLine("Hello");

Запятая (,) : разделяет параметры и элементы массивов:

var numbers = new int[] { 1, 2, 3 };

Точка с запятой (;) : обязательна после каждой инструкции:

int x = 5;
Console.WriteLine(x);

C# строго требует точку с запятой после каждой законченной команды.

Нижние подчеркивания в C#, как и везде, могут быть как частью стиля, так и частью синтаксиса.

_name - очень распространённое соглашение для приватных полей. Часто можно встретить именно такое:

private string _logger;

Это не синтаксис, но общепринято. Некоторые предпочитают camelCase, без _, но _ популярнее.

В C# нет никаких name mangling, магических методов через __.

_ можно использовать как discard - для отбрасывания значения:

var (name, _, age) = GetData(); // игнорируем второе поле

_ в числах используется как разделитель:

int million = 1_000_000;

Символы «|» и «||» в JavaScript, C#, Java, C++ и Kotlin использутся в общем порядке:

| — это побитовое ИЛИ (bitwise OR).

К примеру, метод(значениеА | значениеБ);

В условиях это логическое ИЛИ, но без сокращённого вычисления.

if (методА() | методБ()) - вызовет и методА, и методБ, даже если методА - true.

bool result = a() | b(); // оба вызовутся

|| - логическое ИЛИ (с сокращённым вычислением), можно назвать исключающим.

допустим return a || b - если a true, то b не вернется/не вычислится.

bool result = a() || b(); // если a() == true, b() не вызывается

Директива #region и #endregion — это возможность в C# для логической группировки кода, которую поддерживают IDE (например, Visual Studio), чтобы можно было сворачивать/разворачивать блоки кода.

#region Вспомогательные методы
void Helper1() { }
void Helper2() { }
#endregion

Однако это не часть языка C#, а расширение, поддерживаемое редакторами. Другие языки, как правило, не имеют встроенной поддержки #region, но у многих современные IDE и редакторы (например, VS Code, IntelliJ, GoLand) позволяют сворачивать произвольные блоки кода по другим признакам.